CPU 686
BITS 32

%define PIC1_CMD 0x20
%define EOI 0x20
%define DATA_REG 0x60

global _kbc_handler
extern _scancode

section .text

_kbc_handler:

push EAX ; todos os registos utilizados na rotina

XOR EAX,EAX
in al, DATA_REG
mov DWORD[_scancode], eax
mov al, EOI
out PIC1_CMD, al

pop EAX
iretd

END
